Update web interface to work with new VBD interface.
Finish tidying up web build files
3eb781fceEYkUi1XHKf2V0KX7si2JA tools/control/build-cmdline.xml
3ec41f7cWCxQ8pdH8ZWqhhv-38qQ1w tools/control/build-web.xml
3ec41f7ca6IBXDSe0HVcMPp3PPloOQ tools/control/build.properties
-3ec4ebe0g_MI1VqkbbyNB8gt6m0Adg tools/control/docs/empty_dir
3eb781fcabCKRogwxJA3-jJKstw9Vg tools/control/domctl.xml
3f042c35FzVap5QW0UBPnZ2ZM0l3QA tools/control/src/org/xenoserver/cmdline/CommandParser.java
3eb781fdNQvEJW3tNvovjqoN7GlePA tools/control/src/org/xenoserver/cmdline/Main.java
3ec41f7e1-bFRAfSveBhJNc-yQguXQ tools/control/web/tmpl/vd-pv.tmpl
3ec41f7e6v7MAKuV03qkOLX94vCGQg tools/control/web/tmpl/vd-vbdc.tmpl
3ec41f7eInaxQyoN0zPtGH6O1l0qaA tools/control/web/tmpl/vd-vbdcr.tmpl
-3ec41f7e6vb1amZZa0IBdsPkPURj8Q tools/control/web/tmpl/vd-vbdd.tmpl
-3ec41f7e678cIPHf9EjP5W6hVcssYA tools/control/web/tmpl/vd-vbdf.tmpl
-3ec41f7e0PF1fM5WdSWxgtzcWTV__w tools/control/web/tmpl/vd-vbdfr.tmpl
3ec41f7eSe6rb0p4IxLU16czqIaTCA tools/control/web/tmpl/vd-vbdv.tmpl
3ec41f7eAYtNdK1Yy-RdGMCcSDNfBA tools/control/web/tmpl/vd-vdc.tmpl
3ec41f7eFxwTmuQ8wWMdvVQ5jtiKKA tools/control/web/tmpl/vd-vdcr.tmpl
for development:
## edit xeno.bk/tools/control/build.properties
# change manger.url to your xenoserver: mousetrap-0.xeno.cl.cam.ac.uk
- # change build.home to your xeno.bk full path
## to "make install-web" in xeno.bk/tools/control instead of copying the war file
cp $CATALINA_HOME/conf/tomcat-users.xml $CATALINA_HOME/conf/tomcat-users.orig
sed -e 's/<tomcat-users>/<tomcat-users>\\r <role rolename="standard"\/>\\r <role rolename="manager"\/>\\r <user username="hobbes" password="tiger" roles="standard,manager"\/>/' $CATALINA_HOME/conf/tomcat-users.orig > $CATALINA_HOME/conf/tomcat-users.xml
-->
- <property name="app.name" value="myapp"/>
+ <property name="app.name" value="xenctl"/>
<property name="app.path" value="/${app.name}"/>
<property name="app.version" value="0.1-dev"/>
<property name="build.home" value="${basedir}/build-web"/>
<property name="catalina.home" value="../../../.."/> <!-- UPDATE THIS! -->
<property name="dist.home" value="${basedir}/dist-web"/>
- <property name="docs.home" value="${basedir}/docs"/>
-<!-- <property name="manager.url" value="http://localhost:8080/manager"/> -->
<property name="src.home" value="${basedir}/src"/>
<property name="web.home" value="${basedir}/web"/>
The "dist" target creates a binary distribution of your application
in a directory structure ready to be archived in a tar.gz or zip file.
- Note that this target depends on two others:
+ Note that this target depends on:
* "compile" so that the entire web application (including external
dependencies) will have been assembled
- * "javadoc" so that the application Javadocs will have been created
-
-->
<target name="dist" depends="compile"
description="Create binary distribution">
- <!-- Copy documentation subdirectories -->
- <mkdir dir="${dist.home}/docs"/>
- <copy todir="${dist.home}/docs">
- <fileset dir="${docs.home}"/>
- </copy>
-
<!-- Create application JAR file -->
<jar jarfile="${dist.home}/${app.name}-${app.version}.war"
basedir="${build.home}"/>
</target>
-<!-- ==================== Javadoc Target ================================== -->
-
-<!--
-
- The "javadoc" target creates Javadoc API documentation for the Java
- classes included in your application. Normally, this is only required
- when preparing a distribution release, but is available as a separate
- target in case the developer wants to create Javadocs independently.
-
--->
-
- <target name="javadoc" depends="compile"
- description="Create Javadoc API documentation">
-
- <mkdir dir="${dist.home}/docs/api"/>
- <javadoc sourcepath="${src.home}"
- destdir="${dist.home}/docs/api"
- packagenames="*">
- <classpath refid="compile.classpath"/>
- </javadoc>
-
- </target>
-
-
-
<!-- ====================== List Target =================================== -->
<!--
manager.username=hobbes
manager.password=tiger
compile.optimize=false
-# change <path> to the full path
-build.home=<path>/xeno.bk/tools/control/build-xen/build-xen
-app.name=xenctl
src0 = xenostyle.css
src1 = index.jsp about.jsp help.jsp vd.jsp \
vd-pv.jsp vd-pa.jsp vd-vdv.jsp vd-vdc.jsp vd-vdd.jsp vd-vdr.jsp \
- vd-fv.jsp vd-vbdv.jsp vd-vbdc.jsp vd-vbdd.jsp vd-vbdf.jsp \
- vd-par.jsp vd-vdcr.jsp vd-vddr.jsp vd-vdrr.jsp \
- vd-vbdcr.jsp vd-vbdfr.jsp \
+ vd-fv.jsp vd-vbdv.jsp vd-vbdc.jsp \
+ vd-par.jsp vd-vdcr.jsp vd-vddr.jsp vd-vdrr.jsp vd-vbdcr.jsp \
dom.jsp dom-lis.jsp dom-new.jsp dom-newr.jsp dom-sta.jsp dom-star.jsp \
dom-stp.jsp dom-stpr.jsp dom-del.jsp dom-delr.jsp \
pd.jsp pd-g.jsp pd-gr.jsp pd-l.jsp pd-r.jsp pd-rr.jsp
$(target)/vd-pv.jsp $(target)/vd-pa.jsp $(target)/vd-vdv.jsp \
$(target)/vd-vdc.jsp $(target)/vd-vdd.jsp $(target)/vd-vdr.jsp \
$(target)/vd-fv.jsp $(target)/vd-vbdv.jsp $(target)/vd-vbdc.jsp \
- $(target)/vd-vbdd.jsp $(target)/vd-vbdf.jsp \
$(target)/about.jsp $(target)/help.jsp \
$(target)/vd-par.jsp $(target)/vd-vdcr.jsp $(target)/vd-vddr.jsp \
- $(target)/vd-vdrr.jsp $(target)/vd-vbdcr.jsp $(target)/vd-vbdfr.jsp \
+ $(target)/vd-vdrr.jsp $(target)/vd-vbdcr.jsp \
$(target)/dom.jsp $(target)/dom-lis.jsp $(target)/dom-new.jsp \
$(target)/dom-newr.jsp $(target)/dom-sta.jsp $(target)/dom-star.jsp \
$(target)/dom-stp.jsp $(target)/dom-stpr.jsp \
{
%>
output[<%= i %>] =<br>
-<%= new CommandPhysicalGrant(d, domain, partitions[i], mode, false).execute() %> <br>
+<%= new CommandPhysicalGrant(d, domain, partitions[i], mode, false).executeWeb() %> <br>
<%
}
} catch (NumberFormatException e) {
String partition = partitions[i].substring(partitions[i].indexOf(" ")+1);
%>
output[<%= i %>] =<br>
-<%= new CommandPhysicalRevoke(sc.getDefaults(),domain,partition).execute() %> <br>
+<%= new CommandPhysicalRevoke(sc.getDefaults(),domain,partition).executeWeb() %> <br>
<%
}
}
{
%>
output[<%= i %>] =<br>
-<%= new CommandPartitionAdd(partitions[i], Library.parseSize(size), false).execute() %> <br>
+<%= new CommandPartitionAdd(partitions[i], Library.parseSize(size), false).executeWeb() %> <br>
<%
}
}
output =<br>
<%= new CommandVbdCreate(hsrw.getParameter("vd"),
domain, vbd,
- mode).execute() %>
+ mode).executeWeb() %>
<%
}
catch (NumberFormatException e)
+++ /dev/null
-Delete Virtual Block Devices
-SECTION&XenoServers
-BREADCRUMB&Virtual Disk Manager&vd.jsp
-
-<!-- content -->
-<img src="pixel.gif" class="block" width="1" height="12">
-
-<table cellpadding="0" cellspacing="0" border="0">
-<tbody>
-INCLUDE&vdmenu.tmpl
-<td valign="top">
-
-<table cellpadding="0" cellspacing="0" border="0">
-<tbody>
-
-<tr><td>
-Not currently implemented.
-</td></tr>
-
-##WHITESPACE## ##GREYLINE1## ##WHITESPACE##
-
-</td>
-</tbody>
-</table>
-
-</td>
-</tbody>
-</table>
-
-
-
-
-<!-- end content -->
+++ /dev/null
-Flush Virtual Block Devices
-SECTION&XenoServers
-BREADCRUMB&Virtual Disk Manager&vd.jsp
-
-<!-- content -->
-<img src="pixel.gif" class="block" width="1" height="12">
-
-<table cellpadding="0" cellspacing="0" border="0">
-<tbody>
-INCLUDE&vdmenu.tmpl
-<td valign="top">
-
-<form method="post" action="vd-vbdfr.jsp">
-<table cellpadding="0" cellspacing="0" border="0">
-<tbody>
-
-<tr><td>
-<table cellpadding="2" cellspacing="0" border="0">
-<tbody>
- <tr class="vdh"><td>vd key</td><td>dom</td><td>vbd</td><td>mode</td></tr>
-
- <%
- for (Iterator i = root.vdm().getVirtualBlockDevices(); i.hasNext();)
- {
- VirtualBlockDevice vbd = (VirtualBlockDevice) i.next();
- VirtualDisk vd = vbd.getVirtualDisk();
- %>
- <tr class="vdt">
- <td><%= vd.getKey() %></td>
- <td><%= vbd.getDomain() %></td>
- <td><%= vbd.getVbdNum() %></td>
- <td><%= vbd.getMode().toString() %></td>
- </tr>
- <%
- }
- %>
-
-</tbody>
-</table>
-</td></tr>
-
-##WHITESPACE## ##GREYLINE1## ##WHITESPACE##
-
-<tr>
- <td><font color="red">Warning, this will remove all virtual block devices</font></td>
-</tr>
-
-<tr>
- <td><input type="submit" value="flush all vbds"></td>
-</tr>
-
-</td>
-</tbody>
-</table>
-
-</form>
-
-
-</td>
-</tbody>
-</table>
-
-
-
-
-<!-- end content -->
+++ /dev/null
-Flush Virtual Block Devices
-SECTION&XenoServers
-BREADCRUMB&Virtual Disk Manager&vd.jsp
-
-<!-- content -->
-<img src="pixel.gif" class="block" width="1" height="12">
-
-<table cellpadding="0" cellspacing="0" border="0">
-<tbody>
-INCLUDE&vdmenu.tmpl
-<td valign="top">
-
-<b>Flush Virtual Block Device Results</b>
-<br>
-
-
-<%
- HttpServletRequestWrapper hsrw = new HttpServletRequestWrapper(request);
-%>
-output = <%= new CommandVbdFlush().execute() %>
-<%
- root.doFlushState();
-%>
-
-</td>
-</tbody>
-</table>
-
-
-
-
-<!-- end content -->
<tbody>
INCLUDE&vdmenu.tmpl
<td valign="top">
-
+<%
+ CommandVbdList list = new CommandVbdList();
+ String output = list.executeWeb();
+ VirtualBlockDevice[] vbds = list.vbds();
+ if (output != null)
+ {
+%>
+<%= output %>
+<%
+ } else {
+%>
<table cellpadding="2" cellspacing="0" border="0">
<tbody>
<tr class="vdh"><td>dom</td><td>vbd</td><td>mode</td><td>vd key</td><td>vd name</td></tr>
<%
- for (Iterator i = root.vdm().getVirtualBlockDevices(); i.hasNext();)
+ for (int i=0;i<vbds.length;i++)
{
- VirtualBlockDevice vbd = (VirtualBlockDevice) i.next();
+ VirtualBlockDevice vbd = vbds[i];
VirtualDisk vd = vbd.getVirtualDisk();
%>
<tr class="vdt">
%>
</tbody>
</table>
+<%
+ }
+%>
</td>
</tbody>
expiry += System.currentTimeMillis();
%>
output =<br>
-<%= new CommandVdCreate( hsrw.getParameter("name"), Library.parseSize(size), new Date(expiry)).execute() %>
+<%= new CommandVdCreate( hsrw.getParameter("name"), Library.parseSize(size), new Date(expiry)).executeWeb() %>
<br>
<%
}
vd= <%= hsrw.getParameter("vd") %>
-vd= <%= new CommandVdDelete(hsrw.getParameter("vd")).execute() %>
+vd= <%= new CommandVdDelete(hsrw.getParameter("vd"),false).executeWeb() %>
<%
root.doFlushState();
for (int i = 0; i < vds.length; i++)
{
%>
-vd = <%= new CommandVdRefresh(vds[i], new Date(expiry)).execute() %> <br>
+vd = <%= new CommandVdRefresh(vds[i], new Date(expiry)).executeWeb() %> <br>
<%
}
}
<tr>
<td class="sidemenu" width="100"><a href="vd-vbdc.jsp">Create</a></td>
</tr>
-<tr>
- <td class="sidemenu" width="100"><a href="vd-vbdd.jsp">Delete</a></td>
-</tr>
-<tr>
- <td class="sidemenu" width="100"><a href="vd-vbdf.jsp">Flush</a></td>
-</tr>
</tbody>
</table>